/*
promise是es6新增加的类new Promise 用来管理js异步操作
也称为promise设计模式
一个 Promise有以下几种状态:pending(初始状态 既不成功也不失败)fulfilled: 意味着操作成功完成。rejected: 意味着操作失败。
promise本身是同步操作，但是可以管理异步操作，
 promise本身同步操作：new Promise()创建一个promise实例对象，立即会把传入的实参函数执行
管理异步操作：resolve ,reject连个参数控制
// resolve：异步操作执行成功（到规定时间准点执行），执行resolve方法
reject:当异步操作执行失败，执行reject方法
*/
// new Promise((resolve, reject) => {
//     // 执行异步任务 
//     // new Promise()创建一个promise实例对象，立即会把传入的实参函数执行。
//     setTimeout(function () {
//         resolve('ok') //下面定义的resolve函数实际执行
//     }, 1000)

// }).then((a) => {
//     // then里面传进来的第一个函数传给上面resolve
//     console.log(a)
// }, () => {
//     //then里面传进来的第二个函数传给上面reject
//     console.log('no ok')
// })

// let val = null
// let xhr = new XMLHttpRequest()
// xhr.open('get', './01.js', false) //false同步
// xhr.onreadystatechange = () => {
//     if (xhr.readyState == 4 && xhr.status == 200) {
//         val = xhr.responseText

//     }
// }
// xhr.rend(null)
// console.log(val)
// console.log('1111111')

let value = null
new Promise((reslove, reject) => {
    // ajax异步操作
    let xhr = new XMLHttpRequest()
    xhr.open('get', './01.js', true) //true异步可以省略不写
    xhr.onreadystatechange = () => {
        if (xhr.readyState == 4 && xhr.status == 200) {
            value = xhr.responseText
            // 异步操作执行成功执行reslove方法
            reslove(value)
        }
        else {
            // 当异步操作执行失败，执行reject方法
            reject()
        }
    }

}).then((res) => {
   
}, () => { })